package com.kedacom.freedomLabel.viewmodel;

import android.arch.lifecycle.Lifecycle;
import android.arch.lifecycle.OnLifecycleEvent;
import android.support.annotation.Nullable;

import com.google.gson.Gson;
import com.kedacom.freedomLabel.base.BaseViewModel;
import com.kedacom.freedomLabel.base.UserCache;
import com.kedacom.freedomLabel.label.TemplateManager;
import com.kedacom.freedomLabel.model.annotation.ItemCategory;
import com.kedacom.freedomLabel.model.bean.Category;
import com.kedacom.freedomLabel.model.bean.Config;
import com.kedacom.freedomLabel.model.bean.Item;
import com.kedacom.freedomLabel.model.bean.Template;
import com.kedacom.freedomLabel.model.db.AppDatabase;
import com.kedacom.freedomLabel.model.db.Converters;
import com.kedacom.freedomLabel.model.db.DataCallback;
import com.kedacom.freedomLabel.model.db.DataLoader;
import com.kedacom.freedomLabel.model.db.dao.ConfigDao;
import com.kedacom.freedomLabel.model.db.dao.ItemDao;
import com.kedacom.freedomLabel.model.db.dao.TemplateDao;
import com.kedacom.freedomLabel.utils.log.LLog;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Author：李程
 * CreateTime：2019/12/22 20:45
 * E-mail：licheng@kedacom.com
 * Describe：
 */
public class
MainViewModel extends BaseViewModel {

      @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    public void updateLocalCustomColumnNames() {
        UserCache.customColumnNames = Converters.sDefaultColumnNames;
        LLog.debug("ID自定义名称更新成功 " + new Gson().toJson(UserCache.customColumnNames));
    }

//    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
//    private void countTemplateCount() {
//           createTemplateData();
//    }
//
//    private void createTemplateData() {
//        // prepare company information
//        TemplateManager.CompanyPosition companyPosition = new TemplateManager.CompanyPosition();
//        companyPosition.name = new Template.Position(11, 11);
//        companyPosition.contactNumber = new Template.Position(12, 12);
//        companyPosition.faxNumber = new Template.Position(13, 13);
//        companyPosition.address = new Template.Position(14, 14);
//
//        // prepare order information
//        TemplateManager.OrderPosition orderPosition = new TemplateManager.OrderPosition();
//        orderPosition.batch = new Template.Position(8, 8);
//        orderPosition.serial = new Template.Position(9, 9);
//        orderPosition.time = new Template.Position(10, 10);
//
//        String templateName6030 = TemplateManager.getTemplateName(0);
//        String templateName6040 = TemplateManager.getTemplateName(1);
//
//        // init using label-template
//        Template template6040 = new TemplateManager.Builder(60, 40)
//                .addTitle(0, 0)
//                .addQR(1, 1)
//                .addID1(2, 2)
//                .addID2(3, 3)
//                .addID3(4, 4)
//                .addID4(5, 5)
//                .addID5(6, 6)
//                .addID6(7, 7)
//                .addCompanyInformation(companyPosition)
//                .addOrderInformation(orderPosition)
//                .build(templateName6040);
//        Template template6030 = new TemplateManager.Builder(60, 30)
//                .addTitle(0, 0)
//                .addQR(1, 1)
//                .addID1(2, 2)
//                .addID2(3, 3)
//                .addID3(4, 4)
//                .addID4(5, 5)
//                .addID5(6, 6)
//                .addID6(7, 7)
//                .addCompanyInformation(companyPosition)
//                .addOrderInformation(orderPosition)
//                .build(templateName6030);
//
//        List<Template> templateList =new ArrayList<>();
//        templateList.add(template6030);
//        templateList.add(template6040);
//        TemplateDao dao = AppDatabase.getInstance().templateDao();
//        DataLoader.save(dao, templateList, new DataCallback<List<Template>>() {
//            @Override
//            public void success(@Nullable List<Template> data) {
//                if (data == null) return;
//                LLog.debug("打印模板生产成功");
//            }
//
//            @Override
//            public void error(@Nullable String errorMessage) {
//                LLog.debug("打印模板生产失败");
//            }
//        });
//
//    }
//
//    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
//    private void prepareUserCacheData() {
//        ConfigDao configDao = AppDatabase.getInstance().configDao();
//        DataLoader.get(configDao, new DataCallback<List<Config>>() {
//            @Override
//            public void success(@Nullable List<Config> data) {
//                if (data != null) {
//                    Map<String, String> map = new HashMap<>();
//                    for (Config bean : data) {
//                        map.put(bean.configKey, bean.configValue);
//                    }
//                    UserCache.init(map);
//                    LLog.debug("用户信息读取成功");
//                }
//            }
//
//            @Override
//            public void error(@Nullable String errorMessage) {
//                showToast("用户信息读取失败", TOAST_ERROR);
//                LLog.error("用户信息读取失败 " + errorMessage);
//            }
//        });
//    }
//
//    public void insertUser(Item user){
//        Item item =new Item();
//        item.category = ItemCategory.ITEM_1;
//        item.number = "123456";
//        item.value = "李程";
//
//        ItemDao itemDao = AppDatabase.getInstance().itemDao();
//        DataLoader.save(itemDao,user);
//    }
}